Template Management এবং Reusability

Java Technologies - অ্যাপাচি পিওআই (ওয়ার্ড) Templates এবং Document Generation |
148
148

Apache POI এর মাধ্যমে Microsoft Word (DOCX) ডকুমেন্টে template management এবং reusability পরিচালনা করা সম্ভব। Template management হলো ডকুমেন্টে পূর্বনির্ধারিত কন্টেন্ট, স্টাইল, এবং ফরম্যাটের ব্যবহার, যা পুনরায় বিভিন্ন পরিস্থিতিতে ব্যবহৃত হতে পারে। এটি ডকুমেন্ট তৈরির প্রক্রিয়াকে দ্রুত এবং কার্যকর করে।

এখানে আমরা দেখবো কিভাবে Word templates তৈরি করা যায় এবং কিভাবে তা পুনঃব্যবহারযোগ্য (reusable) করা যায় বিভিন্ন ডকুমেন্টের মধ্যে।


১. Template তৈরি এবং Customization

Word Templates (ডকুমেন্ট টেমপ্লেট) সাধারণত এমন ডকুমেন্ট হয়, যা পূর্বনির্ধারিত কন্টেন্ট, স্টাইল, এবং ফরম্যাট ধারণ করে। Apache POI ব্যবহার করে আপনি সহজেই একটি template তৈরি করতে পারেন এবং তারপর সেটিকে প্রয়োজন অনুসারে customize করতে পারেন।

উদাহরণ: Template তৈরি এবং Customization

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;

public class TemplateExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // একটি প্যারাগ্রাফ তৈরি করা (টেমপ্লেটের জন্য স্টাইল সেট করা)
        XWPFParagraph paragraph = document.createParagraph();
        paragraph.setStyle("Heading1");  // টেমপ্লেটের জন্য হেডিং স্টাইল ব্যবহার করা

        // প্যারাগ্রাফের মধ্যে টেক্সট যোগ করা
        XWPFRun run = paragraph.createRun();
        run.setText("টেমপ্লেটের শিরোনাম");

        // টেমপ্লেটের শরীর (Body) তৈরি করা
        XWPFParagraph bodyParagraph = document.createParagraph();
        XWPFRun bodyRun = bodyParagraph.createRun();
        bodyRun.setText("এটি একটি টেমপ্লেটের শরীরের কন্টেন্ট।");

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("TemplateExample.docx")) {
            document.write(out);
        }

        System.out.println("Template created successfully!");
    }
}

কোড ব্যাখ্যা:

  • paragraph.setStyle("Heading1"): টেমপ্লেটের জন্য Heading1 স্টাইল ব্যবহার করা হয়েছে, যা সাধারণত শিরোনামের জন্য ব্যবহৃত হয়।
  • run.setText("টেমপ্লেটের শিরোনাম"): টেমপ্লেটের শিরোনাম হিসেবে একটি টেক্সট যোগ করা হয়েছে।
  • bodyRun.setText("এটি একটি টেমপ্লেটের শরীরের কন্টেন্ট"): টেমপ্লেটের শরীরের (body) কন্টেন্ট যোগ করা হয়েছে।

২. Template থেকে ডেটা সাবstitute করা

ডকুমেন্টের টেমপ্লেট তৈরি করার পর, আপনি সেই টেমপ্লেটের মধ্যে কিছু জায়গায় dynamic data (যেমন, নাম, তারিখ, ঠিকানা ইত্যাদি) সন্নিবেশ করতে পারেন। এটি ডকুমেন্টের পুনঃব্যবহারযোগ্যতা এবং কাস্টমাইজেশন সহজ করে।

উদাহরণ: Template থেকে ডেটা সাবস্টিটিউশন

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;

public class TemplateWithDynamicData {
    public static void main(String[] args) throws IOException {
        // ডাইনামিক ডেটা
        String recipientName = "John Doe";
        String currentDate = "2024-12-17";

        // একটি নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // প্যারাগ্রাফ তৈরি করা এবং ডাইনামিক ডেটা যোগ করা
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        run.setText("প্রিয় " + recipientName + ",");
        
        // পরবর্তী প্যারাগ্রাফে ডাইনামিক ডেটা ব্যবহার করা
        XWPFParagraph bodyParagraph = document.createParagraph();
        XWPFRun bodyRun = bodyParagraph.createRun();
        bodyRun.setText("আপনাকে জানানো হচ্ছে যে, আজকের তারিখ: " + currentDate);

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("TemplateWithDynamicData.docx")) {
            document.write(out);
        }

        System.out.println("Template with dynamic data created successfully!");
    }
}

কোড ব্যাখ্যা:

  • recipientName এবং currentDate: ডাইনামিক ডেটা তৈরি করা হয়েছে, যা টেমপ্লেটের বিভিন্ন জায়গায় ইনসার্ট করা হয়েছে।
  • run.setText("প্রিয় " + recipientName + ","): টেমপ্লেটের মধ্যে প্রাপকের নাম সাবস্টিটিউট করা হয়েছে।
  • bodyRun.setText("আপনাকে জানানো হচ্ছে যে, আজকের তারিখ: " + currentDate): টেমপ্লেটের মধ্যে তারিখ সাবস্টিটিউট করা হয়েছে।

৩. Reusable Template তৈরি করা

Reusable templates তৈরি করতে, একটি টেমপ্লেট ফাইল তৈরি করে সেটি বিভিন্ন প্রোজেক্টে বা ডকুমেন্টে ব্যবহার করা যেতে পারে। এর জন্য আপনি Apache POI দিয়ে একবার একটি template তৈরি করে সেটিকে পরে বিভিন্ন ডাইনামিক ডেটা দিয়ে পরিবর্তন (modify) করতে পারবেন।

উদাহরণ: Reusable Template ব্যবহার

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ReusableTemplateExample {
    public static void main(String[] args) throws IOException {
        // পূর্বে তৈরি করা টেমপ্লেট ফাইল থেকে ডকুমেন্ট লোড করা
        FileInputStream templateFile = new FileInputStream("TemplateExample.docx");
        XWPFDocument document = new XWPFDocument(templateFile);

        // ডাইনামিক ডেটা
        String recipientName = "Jane Smith";
        String currentDate = "2024-12-18";

        // টেমপ্লেটের প্রথম প্যারাগ্রাফে ডেটা সাবস্টিটিউট করা
        XWPFParagraph paragraph = document.getParagraphArray(0);
        XWPFRun run = paragraph.getRuns().get(0);
        run.setText("প্রিয় " + recipientName + ",");

        // টেমপ্লেটের দ্বিতীয় প্যারাগ্রাফে ডেটা সাবস্টিটিউট করা
        XWPFParagraph bodyParagraph = document.getParagraphArray(1);
        XWPFRun bodyRun = bodyParagraph.getRuns().get(0);
        bodyRun.setText("আপনাকে জানানো হচ্ছে যে, আজকের তারিখ: " + currentDate);

        // পরিবর্তিত ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("ReusableTemplateExample.docx")) {
            document.write(out);
        }

        System.out.println("Reusable template updated successfully!");
    }
}

কোড ব্যাখ্যা:

  • FileInputStream(templateFile): পূর্বে তৈরি করা টেমপ্লেট ফাইলটি লোড করা হচ্ছে।
  • XWPFParagraph paragraph = document.getParagraphArray(0): টেমপ্লেটের প্রথম প্যারাগ্রাফে ডাইনামিক ডেটা সাবস্টিটিউট করা হচ্ছে।
  • document.write(out): পরিবর্তিত ডকুমেন্ট নতুন নাম দিয়ে সেভ করা হচ্ছে।

সারাংশ

Apache POI এর মাধ্যমে template management এবং reusability কার্যকরভাবে পরিচালনা করা যায়। আপনি একবার একটি Word template তৈরি করে সেটিকে বিভিন্ন ডাইনামিক ডেটা দিয়ে কাস্টমাইজ এবং পুনরায় ব্যবহার করতে পারেন। এটি ডকুমেন্ট তৈরির সময় অনেকটা স্বয়ংক্রিয়তা এবং কার্যকারিতা যোগ করে, বিশেষ করে যখন একাধিক ডকুমেন্ট একই ধরনের কাঠামো এবং ফরম্যাট ধারণ করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion